//go的面向对象
//方法？ 有接收者的函数称为方法！！！
package main

import (
	"fmt"
	"math"
)

type Rectangle struct {
	width, height float64
}

type Circle struct {
	radius float64
}

//定义两个分别作用于上面两个结构体的函数,也就是方法！！

func (r Rectangle) area() float64 {
	return r.height * r.width
}

func (c Circle) area() float64 {
	return c.radius * c.radius * math.Pi
}

func main() {
	//定义并初始化两个结构体变量来表示矩形和圆形
	r := Rectangle{12, 3}
	c := Circle{5}
	//调用作用在这两个结构体上的方法
	fmt.Println(r.area())
	fmt.Println(c.area())
}
